【レポート】『学園アイドルマスター』における適応的ゲームAIとグレーボックス最適化を用いたバランス調整支援システムの実現 #CEDEC2024 #classmethod_game
こんにちは。ゲームソリューション部の出村です。
CEDEC2024で講演された「『学園アイドルマスター』における適応的ゲームAIとグレーボックス最適化を用いたバランス調整支援システムの実現」というセッションの概要をお伝えします。
セッション内容
『学園アイドルマスター』における適応的ゲームAIとグレーボックス最適化を用いたバランス調整支援システムの実現
『学園アイドルマスター』では、強化学習によるカードゲームAIとデッキ探索を用いたバランス調整支援システムを開発し、実際のプロダクト運用において新規実装カードのバランス調整に活用しています。プロダクトの管理ツールからプランナーの操作だけでマスターデータ更新後のAI学習・デッキ探索・実行結果の出力まで一貫して実行可能なシステムを実現しました。
本システムの開発において、カード・デッキの膨大な組合せ数により長時間の学習・探索が避けられない一方で、実運用上、カードの強さを迅速に確認することは極めて重要でした。本取り組みでは、大規模な事前学習とマスターデータ更新時の転移学習により、動的に最新のマスターデータに適応するゲームプレイヤーAIを開発しました。加えて、カードやデッキに関する知識を活用したグレーボックス最適化による効率的なデッキ探索手法を開発しました。
本セッションでは、開発したバランス調整支援システムと、それを用いたバランス調整のワークフローについてご紹介します。また、本システムを実現する上で重要なカードゲームAIの学習及びデッキ探索について技術的な詳細を中心に解説します。
内容について
このセッションはAIを用いてのバランス調整や、効率的なデッキ探索AIについてのセッションでした。この記事では、レッスンのバランス調整に焦点を当てて書いていきます。
なお、こちらでは学園アイドルマスター自体の詳細には触れませんのでWebサイトでゲーム内容を理解しておいてください。
レッスンのバランス調整の課題として、膨大な組み合わせが存在する点です。デッキの内容手札などを組み合わせると、その組み合わせの数は膨大になります。そのなかで、バランスブレイカー(=ゲームバランスを大きく崩してしまう組み合わせ)を探すのは至難の業です。
この課題を解決するために、デッキ探索AI、レッスンAIの2つを作成しました。デッキ探索AIでは、これら膨大な組み合わせからバランスブレイカーかを探すためのものです。
レッスンAIは、深層強化学習を用いて、人間と同じようなプレイを行うAIとなっています。ただ、これら2つのAIで全ての課題が解決できるかというとそうではありませんでした。
バランス調整の課題としては、短期で新カードが追加される点です。それらのカードが追加された場合、実用的なAI学習をするために10日以上かかります。
学習に10日というのはあまりに学習時間が長すぎるために実用的だとは言えません。バランス調整のため数値を変更した後、再度学習させる必要があるため、10日という期間はそういった目的で利用するには時間がかかりすぎます。
この学習時間を短縮するために、転移学習という手法を用いました。転移学習を用いることで過去の学習結果が利用できるようになり、学習にかかる時間が10日から10時間程度まで短縮できました。
次にバランス調整システムについて解説していきます。バランス調整は、このようなフローで行われています。
バランス調整は、効果等を設定、入力し、テストプレイを行います。その後にバランス調整支援システムによってテストプレイが行われます。
まず学習が行われます。ベースとなるモデルがない場合はスクラッチ学習、ベースのモデルがある場合は転移学習が行われます。
つぎにデッキ探索が行われます。この際にレッスンAIのプレイによりデッキの評価が行われ、バランスブレイカーがいないかが探索されます。
最後のシミュレーションのログをBigQueryに集約して、見やすいようにスプレットシートに反映します。その際に、問題がないかを確認し、修正が必要であれば、データ修正をし学習させる、という流れとなります。
学習実行は、コアロジック(ゲームの中心となるロジック)は、Unityに依存せず.NETランタイムでも実行できるように設計されています。
そのため、そのコアロジックをPython実装のレッスンAIで動作するプレイヤーがソケット通信することで実行できるようになっています。
デッキ探索のアーキテクチャは、Google CloudのCloud Run / Batchを利用したサーバレスアーキテクチャとなっています。
これにより、複数デッキの探索シミュレーションを並列に稼働させることができますし、利用規模のスケールも柔軟に対応できます。
シミュレーション結果としてスプレッドシートを利用しています。これにより、プランナーが簡単に閲覧できるようになりました。
表示されているないようとしては、探索したデッキの情報、デッキのスコアランク、プレイ時間の各ターンの詳細ログなど、バランス調整で確認すべき項目が掲載されています。
このバランス調整システムを導入してみた結果です。サービス開始前に、すでに1億パターン以上のデッキのシミュレーションが実施されています。人間が1回1分でプレイした場合だと約1900年に相当します。
その他、設計やテストプレイでは気づけなかったデッキ・プレイパターンが検出できたので効果調整に貢献できました。
副産物として、未発見のバグ検出にも役立ちました。
感想・雑感
このようなデッキやアイテムで構成されるゲームのバランス調整は、人力である程度できるものではありますが、バランスブレイカーを見つけるのは至難の業となります。
そういった課題をAIを利用して見つけるのは、とても効率的です。この手法は、現時点では、そのような対応ができる人材がいる企業で活用が進んでいますが、将来的には大久のゲーム会社で利用できる仕組みが提供されるのではないかと予想しています。